package listeners;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import utilities.ProcessExecutor;

/**
 * Se utiliza éste session listener para detectar el momento en que se cierra la session de
 * un cliente y poder limpiar los recursos generados por los usuarios en el servidor.
 * @author Ricardo Sansores
 */
public class SessionListener implements HttpSessionListener{

    public void sessionCreated(HttpSessionEvent se) {
        //No tenemos que hacer nada cuando se crea la session de un usuario
    }

    public void sessionDestroyed(HttpSessionEvent se) {
        try {
            //Debemos borrar todos los recursos que ha creado el usuario para evitar que se vaya
            //usando más y más memoria en el servidor
            //Limpiamos la carpeta de cualquier ADF del mismo cliente.
            ProcessExecutor.execute("rm "+ se.getSession().getId()+"*.*");
        } catch (IOException ex) {
            Logger.getLogger(SessionListener.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
}
